Virtual console gaming controller

ABSTRACT

A system and method of displaying, on a touchscreen display of a mobile device, a virtual game controller having at least one virtual button configured to control multiple actions of an avatar representing a player within a video game executed by a remote gaming server. The player&#39;s interaction with the at least one virtual button is received through the touchscreen display and used to generate a control signal based on the received player interaction, the control signal being interpretable by the video game as an instruction to perform multiple actions in the video game. The control signal is transmitted from the mobile device for receipt by the remote gaming server executing the video game.

BACKGROUND

The hardware required to display video game content and receive inputfrom a player has evolved from running a physical hardcopy of the gamingsoftware on a specialized computing device, or console, to a cloud-basedservice in which the gaming software executes on a remote server that isaccessed by the player over the Internet. In cloud-based gaming, theresource-intensive aspects of the game, such as rendering of graphics,occurs at a server, rather than on a player's local device. Thus, mobiledevices, such as cellular phones and tablets, which do not generallyhave as much computing power or memory as a console or desktop computer,can be used to play cloud-based video games without sacrificing imagequality or overutilizing local processing resources. Thus, a player isno longer limited by the need to have specialized hardware to play avideo game as video games can now be played on most any device with anInternet connection.

In video games, a first-person game is based on a graphical perspectiverendered from the viewpoint of the player's avatar, or a viewpoint fromthe driver's seat or cockpit of a vehicle operated by the player'savatar. Games in which a player's objective is to shoot or otherwisebattle enemies are known as first-person shooter (FPS) games. Many FPSgames display the hands of a player's avatar and their selected weaponryin the main view, with a heads-up display to the side of the main viewshowing health, ammunition, location, and other details. A player movestheir avatar within the game through the use of a combination of akeyboard and mouse or a physical game controller (e.g., a gamepad) withdesignated buttons and sticks to perform actions, such as running,sidestepping, looking, aiming, firing, etc. As some of these actionsneed to occur simultaneously, such as aiming and firing, a playercontrolling their avatar using a keyboard or mouse or a physical gamecontroller is used to activate multiple buttons and/or sticks usingmultiple fingers at the same time.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is better understood, and its numerous featuresand advantages made apparent to those skilled in the art, by referencingthe accompanying drawings. The use of the same reference symbols indifferent drawings indicates similar or identical items.

FIG. 1 is a block diagram of a cloud gaming system configured tofacilitate user play of a video game on a remote client device via avirtual game controller displayed at a touchscreen display in accordancewith some embodiments.

FIG. 2 is a block diagram illustrating an example hardware and softwareconfiguration of a client device in accordance with some embodiments.

FIG. 3 is a block diagram illustrating another example hardware andsoftware configuration of a client device in accordance with someembodiments.

FIG. 4 is a diagram illustrating a configuration of a virtual controllerto control a video game from a client device in accordance with someembodiments.

FIG. 5 is a diagram illustrating another configuration of a virtualcontroller to be displayed on a client device in accordance with someembodiments.

FIG. 6 is a flow diagram illustrating a method for receiving user inputat a virtual controller in accordance with some embodiments.

FIG. 7 is a flow diagram illustrating a method to convert user inputreceived at the view panning area into control signals to be interpretedby the video game to adjust the gaze of the player's avatar inaccordance with some embodiments.

DETAILED DESCRIPTION

When a player plays a cloud-based video game on a mobile device, such asa mobile phone or tablet computer with a touchscreen display, thetouchscreen display of the mobile device serves to both display thegraphics of the game and to receive user input via touch in order tocontrol the user's avatar. To provide a user with controls formanipulating their avatar, a virtual gamepad can be displayed overlayingthe game itself. The virtual gamepad is configured with virtual buttonscorresponding to the buttons and sticks of a physical gamepadcontroller, thus allowing the user to control their avatar by tapping orotherwise pressing the displayed virtual buttons in much the same manneras they would if the player were holding a physical gamepad controller.However, a user often only has their thumbs available for manipulatingthe virtual buttons of the virtual gamepad as their palms and fingersare already engaged to hold and secure the mobile device during play.This makes concurrently manipulating multiple virtual buttonsimpracticable, thus detracting from a user's experience while playingthe video game.

FIGS. 1-7 illustrate a gaming system in which virtual buttons of avirtual game controller displayed at a mobile device are configured tocontrol multiple actions of a player's avatar in the gameplay of a videogame such that a player can effectively provide a wide range of playerinput using just their thumbs, or more generally just one or twotouchpoints, via a touchscreen display of the mobile device. Further, insome embodiments, a virtual area of the virtual game controller isconfigured to allow a player to control the actions of their avatarwithin the video game as though the player was using a physical gamecontroller with at least one stick controller.

In the context of an FPS video game, the virtual game controllerincludes a virtual button, typically displayed on the left side of thevirtual controller, configured to both aim a weapon held by the player'savatar and to move the player's avatar within the scene of the game. Thevirtual controller also includes a virtual button, typically displayedon the right side of the virtual controller, configured to both adjustthe avatar's view of the video game environment (i.e., the renderedlandscape or cityscape in which the avatar is located within the videogame) and to discharge or otherwise activate a weapon held by theplayer's avatar. An area within the same side of the virtual gamecontroller as this button is configured to also adjust the direction ofan avatar's gaze within the video game. Player input received at each ofthe buttons and at the specially-configured area is converted into oneor more control signals that are interpreted by the video game as thoughthe one or more control signals were provided to the video game by aphysical game controller. That is, the virtual game controller displayedat a display of the mobile device, in conjunction with a player'smanipulation of the virtual controller via a touchscreen of the mobiledevice, operates to emulate the operation of a physical game controllerwithout requiring more than two concurrent touch inputs. Thus, thevirtual game controller allows a player to play a video game on theirmobile device using only their thumbs and without the need toconcurrently manipulate multiple virtual buttons or areas on the sameside of the virtual controller in order to control the actions of theiravatar within the video game.

FIG. 1 illustrates a cloud gaming system 100 for cloud-based play of avideo game 110 via a remote client device 106 employing atouchscreen-enabled virtual game controller in accordance with someembodiments. The cloud gaming system 100 includes a data center 102having a gaming server 104 connected to a client device 106 via one ormore packet-switched networks 108. The remote gaming server 104 operatesto execute a video game software application 110 (hereinafter, “videogame 110”) that results in the real-time rendering of a sequence ofvideo frames, which the gaming server 104 encodes and otherwise formatsfor inclusion in a video stream 112 transmitted to the client device106. The client device 106 operates to receive the video stream 112,decode the encoded video frames contained therein, and display thedecoded video frames in sequence to provide a video presentation ofrendered graphical content to a player. Audio content is generated bythe gaming server 104 through execution of the video game 110 andprovided to the client device 106 for output to the player in a similarmanner.

The client device 106 includes a network interface 124 connected to thenetwork 108 to receive the video data and audio data transmitted fromthe gaming server 104 via the network 108, and compute, storage, anddisplay resources (not shown) for decoding and displaying the videoframes of the transmitted video stream 112 and for outputting thecorresponding audio content. The client device 106 includes any of avariety of mobile or portable electronic devices held by a player whilein operation, including a compute-enabled cellular phone (that is, a“smartphone”) or a tablet computer, or otherwise being typicallyutilized by the player to render more than two concurrent touches on atouchscreen impracticable, such as in the case of a compute-enabledwatch (that is, a “smart watch”) or other wearable electronic device.

In some embodiments, the processing and display of video and audiocontent from the video game 110 executed at the gaming server 104 isfacilitated by a software application executed at the client device 106.This software application can include, for example, acloud-gaming-specific software application. In other embodiments, a moregeneral software application is utilized, and the video stream 112 andaudio stream (not shown) are formatted and transmitted by the gamingserver 104 to be compatible with this software application. For example,in one embodiment the client device 106 utilizes a web browser thatutilizes a hypertext markup language (HTML) format for display of thevideo content represented by the video stream 112 and output of theaudio content represented by the associated audio stream, and the gamingserver 104 provides the video stream 112 in a format, such as .mp4 or.MOV, compatible with the HTML format for display via the web browser.

Being interactive, the video game 110 utilizes player input to at leastpartially direct the gameplay experience of a gaming session with theplayer. Player input is received, at least in part, through a virtualgame controller 116 displayed at a touchscreen display 122 of the clientdevice 106. The touchscreen display 122 includes an electronic visualdisplay, for presenting rendered content to a player, coupled to atouchscreen panel composed of sensors to detect pressure, changes incapacitance, or interruptions in light beams resulting from a player'scontact with the screen, either directly or through use of a stylus orother implement. The virtual game controller 116 includes one or moreplayer-manipulable components 118 that, in response to being manipulatedby the player via the touchscreen display 122 of the client device 106,result in a processing component of the virtual game controller 116, orotherwise associated with the virtual game controller 116, generating acorresponding player feedback data and providing that player feedbackdata for transmission to the gaming server 104 via the packet-switchednetwork 108 as part of a player input stream 120. The player-manipulablecomponents 118 typically are displayed as overlaying displayed graphicalcontent represented in the transmitted video stream 112. The virtualgame controller 116 is generally configured to emulate a physicalgamepad controller, as further described below with reference to FIG. 4.

For ease of reference, the player-manipulable components 118 aregenerally referred to herein as “virtual buttons 118” or more generally“buttons 118” and “pressing” a button or “press” of a button will beunderstood to be the player's touch or other contact interaction withthe touchscreen display 122 in an area associated with a location of aplayer-manipulable component 118 on the touchscreen display 122 in amanner that results in the client device 106 interpreting the touchinteraction as a specified player interaction with the virtual gamecontroller 116 and thus generating and transmitting at least onecorresponding control signal.

At least some of the virtual buttons 118 of the virtual game controller116 are configured to control multiple actions of a player's avatar 126in the gameplay of a video game, which is common in the context of FPSvideo games where, for example, a player may need to aim and shootconcurrently. The virtual game controller 116 allows a player to providea wide range of player input through the use of just one or twotouchpoints, which facilitates gameplay of a video game on a mobiledevice where the player typically only has two thumbs available toprovide player input. Thus, the virtual controller allows a player toplay a video game on their mobile device using only their thumbs andwithout the need to concurrently manipulate multiple virtual buttons orareas on the same side of the virtual controller in order to control theactions of their avatar within the video game.

FIG. 2 illustrates a general hardware configuration 200 and softwareconfiguration 202 of the gaming server 104 of FIG. 1 . As depicted bythe hardware configuration 200, the gaming server 104 includes one ormore processors, such as one or more central processing units (CPUs)204, one or more graphics processing units (GPUs 206), one or moreapplication-specific integrated circuits (ASICs)(not shown), and thelike. The hardware configuration 200 further includes a networkinterface 208 coupled to the network 108, one or more input/output (I/O)devices 210, (such as a keyboard, mouse, or display), one or more massstorage devices 212 (such as a hard drive, optical disc drive, ornetwork-attached storage), and the like. The hardware configuration 200further includes at least one random access memory (RAM) or other systemmemory 214 accessible by the one or more processors. The system memory214 stores one or more software applications that include program coderepresenting executable instructions that manipulate the one or moreprocessors to perform various operations described herein. Thesesoftware applications include the aforementioned video game 110 as wellas a set of one or more software applications collectively referred toas platform software 216.

The platform software 216 operates to facilitate execution of the videogame 110 at the gaming server 104. In some implementations, the gamedeveloper of the video game 110 specifically configures the video game110 for execution by a gaming server, in which case the platformsoftware 216 provides application programming interfaces (APIs) andother “hooks” that provide a more transparent interaction between thehardware configuration 200 and the video game 110. In other embodiments,the video game 110 is developed for a specific local hardware platform,such as a personal computer (PC) platform or a game console platform, inwhich case the platform software 216 emulates the typical interfacesbetween the video game 110 and its expected local hardware platform, andthus renders the actual underlying hardware configuration 200 of thegaming server 104 less transparent to the video game 110. An exampleconfiguration of the platform software 216 and its interaction with thevideo game 110 are illustrated by the software configuration 202.

In the depicted software configuration 202, the platform software 216includes an operating system (OS) 218, a gaming server module 220, amedia server module 222, an encoder module 224, a player interactivitymodule 226, as well as other various modules for supporting cloud gamingexecuting as known in the art. The OS 218 operates to manage the overalloperation of the gaming server 104 and to act as an interface betweenthe hardware components and the higher-level software layers. The gamingserver module 220 operates to provide server-side functionalitiesassociated with the video game 110, such as setting up game sessions,storing session state data and other game-related data, processinggameplay inputs, and rendering gameplay outputs in response to thegameplay inputs. The media server module 222 operates to host a mediastreaming site, receive concurrent ancillary or supplemental mediastreams associated with an online gaming session, and provide theconcurrent media streams (e.g., video stream 112, FIG. 1 ) to the clientdevice 106 for concurrent display with a gaming session that is beingsupported during execution of the video game 110. The encoder module 224operates to encode the media streams for transmission to the clientdevice 106. Although illustrated as a software module executed by theprocessor resources of the gaming server 104, in other embodiments theencoder module 224 can be implemented in whole or in part as a hardcodedor programmable logic integrated circuit, such as an ASIC.

The player interactivity module 226 operates to extract player inputdata in the player input stream 120 and present the player input data asplayer inputs to the video game 110 in an appropriate format. Toillustrate, in implementations in which the platform software 216emulates a PC, game console, or other local gaming environment, theplayer interactivity module 226 can operate to emulate inputs to one ormore instances of the video game 110 as though the inputs were playerinputs coming from a physical game controller for each instance, ratherthan the virtual game controller 116 remote to the gaming server 104 andconnected via the network 108.

FIG. 3 is a block diagram illustrating an example implementation of theclient device 106 in accordance with some embodiments. The client device106 includes one or more processing units (CPUs) 302, one or morenetwork interfaces 304, memory 306, and one or more communication buses308 for interconnecting these components (sometimes called a chipset).The client device 106 includes one or more input devices 310 thatfacilitate player input, such as a keyboard, a voice-command input unit,a touch-sensitive input pad, a gesture capturing camera, or other inputbuttons or controls. The client device 106 also includes one or moreoutput devices 312 that enable presentation of user interfaces anddisplay content, including one or more speakers and/or one or morevisual displays. The client device 106 also includes a touchscreendisplay 122, which is configured to both display content to a player andreceive input from the player at an interface.

In some embodiments, the client device 106 further includes a locationdetection device 314, such as a GPS (global positioning satellite)receiver or other geo-location receiver, for determining the location ofthe client device 106. The client device 106 may also include aproximity detection device 315, e.g., an infrared (IR) sensor, fordetermining a proximity of other client devices. The client device 106may also include one or more sensors 313 (e.g., accelerometer,gyroscope, etc.) for sensing motion, orientation, and other parametersof the client device 106, which may be used as input.

Memory 306 includes random-access memory and further may includenon-volatile memory, such as one or more magnetic disk storage devices,one or more optical disk storage devices, one or more flash memorydevices, or one or more other non-volatile solid-state storage devices.The memory 306 stores a variety of programs, modules, and datastructures, or a subset or superset thereof. Example programs stored atthe memory 306 include an operating system 316, including procedures forhandling various basic system services and for performing hardwaredependent tasks, a network communication module 318 for connecting theclient device 106 to other devices (e.g., the gaming server 104 or otherclient devices) via one or more network interfaces 304 (wired orwireless) and one or more networks 108, such as the Internet, other widearea networks, local area networks, metropolitan area networks, etc.

In some embodiments, the memory stores a user interface module 320 forenabling presentation of information (e.g., a graphical user interfacefor presenting applications, widgets, video game content, etc.) at theclient device 106 via one or more output devices 312 (e.g., touchscreendisplay 122). The user interface module 320 includes an input processingmodule 322 for detecting one or more player inputs or interactions fromone of the one or more input devices 310 and interpreting the detectedinput or interaction. In some embodiments, the memory 306 stores aclient-side game module 328 for providing client-side functionalitiesassociated with one or more gaming titles, including but not limited todisplaying a virtual game controller, such as virtual game controller116, setting up game sessions, locally storing session state data andother game-related data, receiving gameplay inputs from the input device310 and/or the touchscreen display 122, and providing gameplay outputsin response to the gameplay inputs, where, in some implementations, theclient-side game module 328 is configured to provide gameplay outputs toa remote server 104 implementing video game 110.

In some embodiments, the memory 306 stores client device settings 334for storing information associated with the client device 106 itself,including common device settings (e.g., service tier, device model,storage capacity, processing capabilities, communication capabilities,etc.). Client device settings include game application(s) settings 338for storing information associated with player accounts of the gameapplication(s), including one or more of account access information,in-game player preferences, gameplay history data, and information onother players, game controller configuration(s) 340 for storinginformation associated with configurations of client-side game module328 for game application(s) 328, local game session data 344 includinginformation associated with online gaming sessions that are executed onthe client device 106 in association with different gaming titles, e.g.,latest status information, texture pages, vertex pages, constant pages,and frame data of one or more image frames associated with each of theonline gaming sessions.

Each of the above-identified elements may be stored in one or more ofthe previously mentioned memory devices and corresponds to a set ofinstructions for performing a function described above. Theabove-identified modules or programs (i.e., sets of instructions) neednot be implemented as separate software programs, procedures, modules,or data structures, and thus various subsets of these modules may becombined or otherwise re-arranged in various implementations. In someimplementations, memory 306 stores a subset of the modules and datastructures identified above. Furthermore, memory 306 may storeadditional modules and data structures not described above.

FIG. 4 illustrates an example configuration of a virtual game controller416 (one embodiment of the virtual game controller 116) to receiveplayer input for the control of a video game, such as video game 110.The virtual game controller 416 is configured to display virtual buttons118 on either or both of the right and left sides of a touchscreendisplay 122 of a client device 106 such that a player can manipulate thevirtual buttons with their thumbs and fingers as they hold the device.The virtual buttons 118 are configured to “receive” player input (viathe touchscreen display 122) in order to manipulate a player's avatar126 and objects within their avatar's control in the video game 110 asthough the player were using a physical game controller to provideplayer input to the video game 110. While numerous virtual buttons 118,and combinations thereof, can be implemented by the virtual gamecontroller 416 and configured to receive player input in order tocontrol various aspects of the video game 110 and the player's gamingexperience, for ease of description, only some of the virtual buttons118 and their functions are described in detail below and the functionsand operations of other buttons 118 will be readily understood based onthe following descriptions.

In the context of a first-person shooter (FPS) video game, a lefttrigger button 402 is used for aiming down sight (ADS) of a weapon 410or object held by the player's avatar 126. A left stick button 404 isconfigured to move the player's avatar 126 within the video game 110. Aright stick button 406 is configured to pan the point of view 412 of aplayer's avatar 126 within the video game 110 and a right trigger button408 is configured to activate an object or fire a weapon 410 in theavatar's 126 control within the video game 110. In a physical gamecontroller, the right stick provides velocity-based feedback to thevideo game 110 such that the farther the stick is moved away from itsoriginal centered position, the farther and faster the avatar's view 412of the video game 110 environment is changed. The right stick button 406of the virtual game controller 116 is configured to emulate thevelocity-based functioning of a right stick on a physical gamepad byadjusting an avatar's view 412 based on how far from its originalposition the right stick button 406 is dragged by a player. This resultsin relatively small movements of the right stick button 406 beingtranslated into large changes in the avatar's view 412, thus makingprecise movement of the avatar's view difficult.

With the described configuration, a player generally needs to manipulatecertain combinations of the virtual buttons 118 concurrently in order toaccomplish certain movements and actions of the avatar 126. For example,in order to locate and aim at targets within the video game 110, aplayer typically needs to hold the left trigger button 402 to aim downsight with the weapon 410 held by their avatar 126 while concurrentlymanipulating the direction their avatar 126 is moving by manipulatingthe left stick button 404. It is also common, for example, that in orderto change the view 412 of an avatar while firing a weapon 410, a playerneeds to concurrently manipulate the right stick button 406 and theright trigger button 408. However, when holding a device, a playergenerally only has their thumbs available to manipulate the virtualbuttons 118, making concurrent control of multiple virtual buttons 118difficult.

FIG. 5 illustrates an example configuration of a virtual controller 516(another embodiment of virtual game controller 116) of the client device106 in accordance with some embodiments. The virtual controller 516 isconfigured to display virtual buttons 118 on both the right and leftsides of a touchscreen 122 of the client device 106 such that a playercan manipulate the buttons with only their thumbs as they hold thedevice. In an embodiment, a draggable aim-and-move button 502 isprovided and displayed on the left side of the touchscreen so as to bemanipulable by a player's left thumb. The aim-and-move button 502 isconfigured to be draggable within an area of the touchscreen 122.Dragging of the aim-and-move button 502 by the player results inmovement of the player's avatar 126 within the video game 110 at thesame time the player's avatar 126 is aiming an object 510 within theircontrol. Thus, the aim-and-move button 502 is a combination of thefunctionalities of the left trigger button 402 and the left stick button404 of the virtual game controller 416 illustrated in FIG. 4 . While theaim-and-move button 502 is depicted and described as being positioned onthe left side of a touchscreen 122 of a client device 106, the layout ofthe buttons of the virtual controller 516 are configurable by the playerto be displayed at any location on the touchscreen 122.

In an embodiment, a draggable point-and-shoot button 504 is provided anddisplayed on the right side of the touchscreen 122 of the client device106. The point-and-shoot button 504 is configured to be draggable withinan area of the touchscreen 122. The point-and-shoot button 504 is alsoconfigured to activate an object 510 held by the player's avatar 126,such as a rifle, upon initial contact with the button 504 by the playerand for as long as the player holds the point-and-shoot button 504. Thepoint-and-shoot button 504 is further configured to adjust the directionin which the player's avatar is looking in response to the playerdragging the point-and-shoot button 504 within the area of thetouchscreen 122. Thus, a player can both direct the gaze of their avatar126 while shooting, or otherwise activating an object in the avatar'scontrol, by holding and dragging the point-and-shoot button 504 withinthe area of the touchscreen 122. The point-and-shoot button 504 of thevirtual controller 516 essentially combines the functionalities of theright trigger button 408 and right stick button 406 of the virtualcontroller 416 illustrated in FIG. 4 . While the point-and-shoot button504 is depicted and described as being positioned on the right side of atouchscreen 122 of a client device 106, the layout of the buttons 118 ofthe virtual controller 516 are configurable by the player to bedisplayed at any location on the touchscreen 122.

In an embodiment, the virtual controller 516 is configured with adefined area 506 (referred to subsequently as “view panning area 506”)associated with the right side of the touchscreen 122 that allows aplayer to adjust the direction of an avatar's view 512 of the video game110 environment based on the player contacting the touchscreen 122within the view panning area 506. The view panning area 506 isconfigured such that certain player input provided by touch contacts tothe area of the touchscreen display 122 associated with the view panningarea 506 serve to move the avatar's view 512 to the position at whichthe player contacts the touchscreen 122 within the view panning area 506and to continue panning the avatar's view 512 as the player moves thepoint of contact within the view panning area 506. Through the use ofthe view panning area 506, a player can precisely adjust their avatar'sview 512 of the video game 110 environment. In order to be convenientlyaccessed by a player holding the client device 106, the view panningarea 506 can be sized and positioned so as to be reachable by a player'sthumb while the player's palm and fingers of the same hand are engagedin holding the client device 106.

FIG. 6 illustrates a method 600 for controlling gameplay of the videogame 110 in the cloud-based gaming system 100 based on player inputprovided via the virtual game controller 116 displayed at the clientdevice 106 in accordance with some embodiments. Following the initiationof a gaming session by a player, video game content and the virtual gamecontroller 116 are displayed at the client device 106 at block 602. Asdescribed above with reference to the embodiment of FIG. 5 , the virtualgame controller 116 can include, for example, one or more virtualbuttons 118, including at least an aim-and-move button 502 disposed atone side (e.g., the left side) of the touchscreen display 122 and apoint-and-shoot button 504 disposed at the opposite side (e.g., theright side) of the touchscreen display 122. In an embodiment, thevirtual game controller 116 includes a view panning area 506 disposed onthe right side of the touchscreen 122.

Player input is received through player interaction with the virtualbuttons 118 and the view panning area 506 of the virtual game controller116 via player contact with associated regions of the touchscreendisplay 122 as represented by one or more of blocks 604, 610, and 616.For example, the player can manipulate the aim-and-move button 502 andthe point-and-shoot button 504 by contacting the area of the touchscreendisplay 122 associated with each of the buttons 502, 504 and, whilemaintaining contact with the touchscreen display 122, moving the buttons502, 504 within an area of the touchscreen display 122 reachable by theplayer's thumb while the player's palm and fingers are engaged inholding the client device 106. Similarly, the player can direct thevideo game 110 to change the direction of the avatar's gaze bycontacting the portion of the touchscreen 122 associated with the viewpanning area 506 and, while continuing to make contact with thetouchscreen 122, moving the point of contact within the view panningarea 506.

The received player input is then converted into control signals thatare transmitted for receipt by the gaming server 104 to be provided tothe video game 110 as part of the player input stream 120 and which arethen interpretable by the video game 110 as instructions to performactions in the video game 110. For example, positional informationregarding a player's movement of a touchpoint associated with a virtualbuttons 118 of the virtual game controller 116 is converted into thecontrol signals that are provided to the video game 110 to beinterpreted as instructions to implement certain activities in the videogame 110. In an embodiment, at block 606, player input received viaplayer manipulation of the aim-and-move button 502 is converted into acontrol signal interpretable by the video game 110 as an instruction tomove the player's avatar 126 within the video game 110 environment basedon the direction and distance the player moves the aim-and-move button502. The player input received via the aim-and-move button 502 is alsoconverted, at block 608, into a control signal interpretable by thevideo game as an instruction to aim an object within the avatar'scontrol.

In an embodiment, player input received via player manipulation of thepoint-and-shoot button 504 is converted, at block 612, into a controlsignal interpretable by the video game 110 as an instruction to changethe direction of the avatar's 126 gaze as though the avatar were movingits head or eyes to view different portions of the video game 110environment based on the direction and distance the player moves thepoint-and-shoot button 504. The player input received via thepoint-and-shoot button 504 is also converted, at block 614, into acontrol signal interpretable by the video game 110 as an instruction toactivate an object, or to discharge a weapon, within the avatar'scontrol and to continue to do so until the player releases thepoint-and-shoot button 504.

In an embodiment, player input received via player contact within theview panning area 506 is converted, at block 618, into a control signalinterpretable by the video game 110 as an instruction to change thedirection of the avatar's 126 gaze based on the position at whichcontact within the view panning area 506 is initiated and the positionat which contact is broken.

At block 620, control signals generated based on the player inputreceived through the virtual game controller 116 are provided to thegaming server 104 via the player input stream 120. The video game 110interprets the provided control signals at block 622. The gaming server104 as controlled by the video game 110 then renders video content basedon the implemented control signals and provides the video content fordisplay at the client device 106 at block 624.

FIG. 7 is a flow diagram illustrating a method 700 to convert playerinput received at the view panning area, as shown in block 618 of FIG. 6, into control signals to be interpreted by the video game 110 to adjustthe gaze of the player's avatar 126. The view panning area 506 isconfigured to emulate the function of a right stick of a physical gamecontroller such that quickly moving the point of contact within the viewpanning area 506 results in a control signal interpretable by the videogame 110 as though a right stick of a physical controller is moved to aposition that is far from the default centered position. The resultingaction within the video game 110 is that the avatar's gaze pans quicklyin the direction of movement made by the player within the view panningarea 506. Similarly, slowly moving the point of contact within the viewpanning area 506 results in a control signal interpretable by the videogame 110 as though a right stick of a physical controller is moved to aposition that is near to the default centered position and, thus, theavatar's gaze pans slowly in the direction of movement made by theplayer within the view panning area 506.

Generating control signals that are interpretable by the video game 110as movement of a right stick of a physical game controller isaccomplished through the use of a heuristic function to convert thelinear velocity of movement of the point of contact within the viewpanning area 506 into non-linear signals that closely match the signalsthat a video game 110 would receive from the right stick of a physicalgame controller. Thus, at block 702, player input in the form of linearvelocity is received at the view panning area 506 by a player moving apoint of contact within the view panning area 506 at a velocity and in adesired direction. At block 704, the heuristic function is applied tothe velocity input received at the view panning area 506 in order toconvert the linear velocity input into a non-linear signal. If theconverted signal is smaller than a defined threshold value, as shown byblock 706, the converted signal is ignored by (that is, not acted uponby) the virtual game controller 116 and no control signal is sent to thevideo game 110 at block 708. If the converted signal is equal to orgreater than the threshold value, the converted signal is normalized andbounded to a value within a range of signal values (that is, a signalrange) that would be outputted by the right stick of a physical gamecontroller at block 710. The normalized and bounded control signal isthen sent to the video game 110 to be interpreted as an instruction tomove the view of the player's avatar 126 at block 712.

In some embodiments, certain aspects of the techniques described abovemay be implemented by one or more processors of a processing systemexecuting software. The software comprises one or more sets ofexecutable instructions stored or otherwise tangibly embodied on anon-transitory computer-readable storage medium. The software caninclude the instructions and certain data that, when executed by the oneor more processors, manipulate the one or more processors to perform oneor more aspects of the techniques described above. The non-transitorycomputer-readable storage medium can include, for example, a magnetic oroptical disk storage device, solid-state storage devices such as Flashmemory, a cache, random access memory (RAM), or other non-volatilememory device or devices, and the like. The executable instructionsstored on the non-transitory computer-readable storage medium may be insource code, assembly language code, object code, or other instructionformat that is interpreted or otherwise executable by one or moreprocessors.

A computer-readable storage medium may include any storage medium, orcombination of storage media, accessible by a computer system during useto provide instructions and/or data to the computer system. Such storagemedia can include, but is not limited to, optical media (e.g., compactdisc (CD), digital versatile disc (DVD), Blu-ray disc), magnetic media(e.g., floppy disc, magnetic tape, or magnetic hard drive), volatilememory (e.g., random access memory (RAM) or cache), non-volatile memory(e.g., read-only memory (ROM) or Flash memory), ormicroelectromechanical systems (MEMS)-based storage media. Thecomputer-readable storage medium may be embedded in the computing system(e.g., system RAM or ROM), fixedly attached to the computing system(e.g., a magnetic hard drive), removably attached to the computingsystem (e.g., an optical disc or Universal Serial Bus (USB)-based Flashmemory), or coupled to the computer system via a wired or wirelessnetwork (e.g., network accessible storage (NAS)).

Note that not all of the activities or elements described above in thegeneral description are required, that a portion of a specific activityor device may not be required, and that one or more further activitiesmay be performed, or elements included, in addition to those described.Still further, the order in which activities are listed are notnecessarily the order in which they are performed. Also, the conceptshave been described with reference to specific embodiments. However, oneof ordinary skill in the art appreciates that various modifications andchanges can be made without departing from the scope of the presentdisclosure as set forth in the claims below. Accordingly, thespecification and figures are to be regarded in an illustrative ratherthan a restrictive sense, and all such modifications are intended to beincluded within the scope of the present disclosure.

Benefits, other advantages, and solutions to problems have beendescribed above with regard to specific embodiments. However, thebenefits, advantages, solutions to problems, and any feature(s) that maycause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeature of any or all the claims. Moreover, the particular embodimentsdisclosed above are illustrative only, as the disclosed subject mattermay be modified and practiced in different but equivalent mannersapparent to those skilled in the art having the benefit of the teachingsherein. No limitations are intended to the details of construction ordesign herein shown, other than as described in the claims below. It istherefore evident that the particular embodiments disclosed above may bealtered or modified and all such variations are considered within thescope of the disclosed subject matter. Accordingly, the protectionsought herein is as set forth in the claims below.

1.-14. (canceled)
 15. A method comprising: displaying, on a touchscreendisplay of a mobile device, a virtual game controller comprising a viewpanning area configured to provide player control of a gaze of an avatarrepresenting a player within a video game executed at a remote gamingserver; receiving, through the touchscreen display, a player interactionwith the view panning area via touch contact of the touchscreen displayas a linear velocity input; generating a control signal based on thereceived player interaction, the control signal configured to beinterpreted by the video game as an instruction to adjust the gaze ofthe avatar in the video game; and transmitting the control signal fromthe mobile device for receipt by the remote gaming server.
 16. Themethod of claim 15, wherein the linear velocity input is based on adirection and distance of movement of the touch contact within the viewpanning area.
 17. The method of claim 15, wherein generating the controlsignal further comprises: applying a heuristic function to the linearvelocity input to generate a non-linear signal.
 18. The method of claim17, wherein generating the control signal further comprises: determiningwhether the non-linear signal is greater than or equal to a thresholdvalue.
 19. The method of claim 18, wherein generating the control signalfurther comprises: in response to the non-linear signal being greaterthan or equal to the threshold value, normalizing and bounding thenon-linear signal within a signal range corresponding to a signal rangeof a physical game controller stick output.
 20. A device comprising: atouchscreen display configured to display content from a gaming serverand to receive player input through touch contact with the touchscreendisplay; a network interface configured to communicate with the gamingserver executing a video game in which a player is represented by anavatar; and at least one processing unit configured to: display, at thetouchscreen display, a virtual game controller including a view panningarea configured to provide control of a view of the avatar of a videogame environment based on the player input with a region of thetouchscreen display associated with the view panning area; and generatea control signal based on the player input with the view panning area,the control signal configured to be interpreted by the video game as aninstruction to adjust the view of the avatar of the video gameenvironment.
 21. The device of claim 20, wherein the player input withthe view panning area is received as a linear velocity input.
 22. Thedevice of claim 21, wherein the at least one processing unit is furtherconfigured to generate the control signal by: applying a heuristicfunction to the linear velocity input to generate a non-linear signal.23. The device of claim 22, wherein the at least one processing unit isfurther configured to generate the control signal by: determiningwhether the non-linear signal is greater than or equal to a thresholdvalue.
 24. The device of claim 23, wherein the at least one processingunit is further configured to generate the control signal by: inresponse to the non-linear signal being greater than or equal to thethreshold value, normalizing and bounding the non-linear signal within asignal range corresponding to a signal range of a physical gamecontroller stick output.
 25. The method of claim 18, wherein generatingthe control signal further comprises: in response to the non-linearsignal being less than the threshold value, ignoring the non-linearsignal.
 26. The method of claim 15, wherein generating the controlsignal further comprises: generating the control signal based upon afirst position of an initial contact with the view panning area and asecond position of the view panning area at which contact with the viewpanning area is broken.
 27. The device of claim 23, wherein the at leastone processing unit is further configured to generate the control signalby: in response to the non-linear signal being less than the thresholdvalue, ignoring the non-linear signal.
 28. The device of claim 20,wherein the at least one processing unit is further configured togenerate the control signal by: generating the control signal based upona first position of an initial contact with the view panning area and asecond position of the view panning area at which contact with the viewpanning area is broken.
 29. A method comprising: displaying, on atouchscreen display of a mobile device, a virtual game controllercomprising a view panning area configured to provide player control of adirection of a gaze of an avatar representing a player within a videogame executed at a remote gaming server; receiving, through thetouchscreen display, an interaction with the view panning area includingan initial contact at a first position of the view panning area and abreaking of contact at a second position of the view panning area;generating a control signal based on the initial contact at the firstposition of the view panning area and the breaking of contact at thesecond position of the view panning area, the control signal configuredto be interpreted by the video game as an instruction to change thedirection of the gaze of the avatar in the video game; and transmittingthe control signal from the mobile device for receipt by the remotegaming server.
 30. The method of claim 29, wherein the interaction withthe view panning area further includes a linear velocity input based onthe initial contact at the first position of the view panning area andthe breaking of contact at the second position of the view panning area.31. The method of claim 30, wherein generating the control signalfurther comprises: applying a heuristic function to the linear velocityinput to generate a non-linear signal.
 32. The method of claim 31,wherein generating the control signal further comprises: determiningwhether the non-linear signal is greater than or equal to a thresholdvalue.
 33. The method of claim 32, wherein generating the control signalfurther comprises: in response to the non-linear signal being greaterthan or equal to the threshold value, normalizing and bounding thenon-linear signal within a signal range corresponding to a signal rangeof a physical game controller stick output.
 34. The method of claim 32,wherein generating the control signal further comprises: in response tothe non-linear signal being less than the threshold value, ignoring thenon-linear signal.